The problem of dealing with transmission errors in telecommunications networks has been studied for many years. In general, the solutions for dealing with transmission errors fall into two classes: (i) forward error control, and (ii) automatic-repeat-request.
In accordance with forward error control, data is encoded in accordance with an error-control coding scheme that increases the likelihood that the receiver can detect and correct any errors that might occur during transmission.
In accordance with automatic-repeat-request, data is encoded in accordance with an error-control coding scheme that that enables the receiver to detect, but not correct, errors that occur during transmission. In accordance with automatic-repeat-request, when an error is detected, the receiver transmits a message back to the transmitter requesting that the data be re-transmitted. This cycle continues until the receiver believes that the data has been received without error.
Both forward error control and automatic-repeat-request have advantages and disadvantages. The advantage of forward error control is that it avoids the temporal delay associated with automatic-repeat-request. The advantage of automatic-repeat-request is that its error-control coding schemes typically require a lower data bit-to-parity bit ratio (ie., less redundancy), and, therefore, less bandwidth in the communications channels.
There exist applications, however, where the prior art techniques of forward error control and automatic-repeat-request are unsatisfactory. One of these applications is Internet telephony, which is also known as Voice over Internet Protocol (“VoIP”). In Internet telephony, the temporal delay associated with automatic-repeat-request causes unsatisfactory interruptions in the preferably continuous flow of speech. Although this problem can generally be avoided by using error-correction coding schemes, error-correction schemes are ineffective when packets containing voice data are lost or delayed during transmission.
Therefore, the need exists for an improved technique for dealing with transmission errors in telecommunications networks that is particularly advantageous for Internet telephony applications.